package com.gzxx.mapper;


import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.gzxx.domain.base.BaseVo;
import com.gzxx.domain.po.SysUser;
import com.gzxx.domain.vo.SysUserVo;
import com.gzxx.domain.vo.UserDeptDetailVo;
import com.gzxx.security.CurrentUser;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 系统用户mapper
 * @author MAX
 * 系统用户Mapper
 */
public interface SysUserMapper extends BaseMapper<SysUser> {

    /**
     * 系统用户查询
     * @param page 分页参数
     * @param params 查询参数
     * @return 数据集
     */
    IPage<SysUserVo> queryUsers(Page page, @Param("param") Map<?,?> params);

    /**
     * 单个用户明细
     * @param id 唯一标识
     * @return SysUserVo
     */
    SysUserVo singleDetail(Long id);

    /**
     * 根据账号查询系统用户
     * @param userName
     * @return
     */
    CurrentUser loadByUserName(String userName);

    /**
     * 根据id批量查询
     */
    List<SysUserVo> queryByIds(@Param("ids") List<Long> ids);

    /**
     * 根据id批量查询用户部门信息
     */
    List<UserDeptDetailVo> queryUserDeptByIds(@Param("ids") List<Long> ids);

    /**
     * 查询所有用户
     */
    List<BaseVo> queryAll();
}
